Software emulation allows an application designed for one type of hardware platform to be executed on another type of hardware platform. Remote or streaming execution provides emulation of an application and further provides the input and output to be redirected, from the computing device that performs the emulation to a client device. Using streaming execution, a customer can execute applications for hardware different from his own device without having to buy the hardware platform or the emulation software.